package controller.simulationcontroller;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import view.simulationview.SimulationToolPanel;
import model.simulationmodel.SimulationModel;

/**
 * <b>Implementiert:</b> <code>ActionListener</code> <br>
 * <b>In Verbindung stehende Klassen:</b> <code>SimulationModel</code><br>
 * <br>
 * Zugehoerige Controllerklasse zum ViewElement StartButton. Diese Klasse
 * stoesst das <code>SimulationModel</code> an die Simulation zu starten bzw.
 * fortzusetzen.
 * 
 * @author Team Locsi
 * 
 */
public class PlayListener implements ActionListener {

	private SimulationModel sModel;
	private SimulationToolPanel stPanel;

	/**
	 * Dieser Konstruktor erzeugt ein neues <code>PlayListener</code>-Objekt.
	 * 
	 * @param sModel
	 *            <code>SimulationModel</code> - Referenz auf das
	 *            <code>SimulationModel</code>
	 * @param stPanel
	 *            <code>SimulationToolPanel</code> - Referenz auf das
	 *            <code>SimulationToolPanel</code>
	 */
	public PlayListener(SimulationModel sModel, SimulationToolPanel stPanel) {
		this.sModel = sModel;
		this.stPanel = stPanel;
	}

	/**
	 * Stoesst das <code>SimulationModel</code> an die Simulation zu starten
	 * bzw. fortzusetzen.
	 */
	@Override
	public void actionPerformed(ActionEvent e) {
		sModel.startSimulation();
		stPanel.setSimulationRunningGif(true);
		stPanel.getTruthTableButton().setEnabled(false);
		stPanel.getTruthTableButton().setToolTipText("<html>Zum erzeugen einer Wahrheitstabelle, muss<br> die Simulation beendet werden</html>");
		stPanel.getTruthTableButtonInMenu().setEnabled(false);
	}
}